# 课堂练习
# nums = [1, 2, 3, 4]

# 以下方法会在列表nums中新增一个空列表（列表里是可以有新的列表的)
# nums.append([])
# print(nums)

# 以下方法是合法的，但是并没有什么用，因为列表nums里什么也没改变
# 因为用来扩展extend”nums“的空列表不包含任何对象，所以没有任何改变
# nums.extend([])
# print(nums)

# 以下为课本练习
phrase = "Don't panic!"    # 字符串形式
plist = list(phrase)    # 转为列表形式，每个字母都变成了一个单独的元素

# 用for循环是为了删除后面无用的元素
for i in range(4):    # 使用for循环，让后面四个元素对象都删除
    plist.pop()    # 删除最后一个元素对象
print(plist)

plist.pop(0)    # 删除第一个元素对象
print(plist)

plist.remove("'")    # 移除符号’
print(plist)

# 第一个pop是删除元素a，第二个pop是删除元素p，将它们组成一个新的列表，重新扩展到列表plist当中
# 也就是将两个步骤融合在一起了，先是删除了后面两个元素，再用extend重新将后面两个元素扩展进来，更加方便
plist.extend([plist.pop(), plist.pop()])
print(plist)

# 下面这个步骤是为了调换空格和元素t的位置
# 在这个时候，列表中的第四个元素是空格，我们用pop删除之后再用insert将空格插入到列表中的第三个位置，也就相当于互换了位置
# 这个步骤和上一个步骤有异曲同工之妙，都合理简洁的利用了pop方法。
plist.insert(2, plist.pop(3))

new_phrase = ''.join(plist)    # 这是将最后得出来的新的列表转换成新的字符串
print(plist)
print(new_phrase)
